package com.lxn.until

import com.lxn.until.MyConfig.{REDIS_HOST, REDIS_PORT}
import redis.clients.jedis.{Jedis, JedisPool, JedisPoolConfig}

object MyRedisUtils {

  var jedisPool : JedisPool = null;

  def getRedisFromPool(): Jedis = {
    if (jedisPool == null) {

      //创建连接，这里我们不使用连接对象，使用连接池
      //然后现在需要传入参数，连接池配置和主机，端口号
      val host: String = MyPropertyUtils(MyConfig.REDIS_HOST)
      val port: String = MyPropertyUtils(MyConfig.REDIS_PORT)
      val jedisPoolConfig = new JedisPoolConfig
      jedisPoolConfig.setMaxTotal(100) //最大连接数
      jedisPoolConfig.setMaxIdle(20) //最大空闲
      jedisPoolConfig.setMinIdle(20) //最小空闲
      jedisPoolConfig.setBlockWhenExhausted(true) //忙碌时是否等待
      jedisPoolConfig.setMaxWaitMillis(5000) //忙碌时等待时长 毫秒
      jedisPoolConfig.setTestOnBorrow(true) //每次获得连接的进行测试

      jedisPool = new JedisPool(jedisPoolConfig, host, port.toInt);
    }
    jedisPool.getResource
  }
}
